package com.io.properties;

import org.junit.Test;

import java.io.*;
import java.util.Properties;

/**
 * 配置文件读取
 */
public class Properties_ {
    public static void main(String[] args) {
        // 传统方法 读取配置文件
        String path ="E:\\JavaProject\\java-learning-directory\\CommonClass\\mysql.properties";

        // 创建输入流
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(path));
            // 读取内容
            String s = "";
            while ((s = br.readLine()) != null) {
                String[] split = s.split("=");
                //System.out.println(split[0]+" 值"+split[1]);
                // 如果只获取ip 值 就需要循环遍历
                if("ip".equals(split[0])) {
                    // 这是获取ip的值
                    System.out.println("这是获取ip的值 "+split[1]);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭流资源
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    @Test
    public void go() throws IOException {
        String path ="E:\\JavaProject\\java-learning-directory\\CommonClass\\mysql.properties";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(path));
        String line = "";
        while ((line = bufferedReader.readLine()) != null) {
            String[] split = line.split("=");
            if ("ip".equals(split[0])) {
                System.out.println("ip的值是 "+split[1]);
            }
        }
    }

    @Test
    public void read() throws IOException {
        // 使用 properties 类来读取 mysql.properties 文件内容
        // 1.创建Properties对象
        Properties properties = new Properties();
        // 2.加载配置文件内容
        properties.load(new FileReader("mysql.properties"));
        // 3.获取配置文件内容 输出到控制台中 k-v
        properties.list(System.out);
        // 4.根据key 获取对应的值
        String user = properties.getProperty("user");
        String root = properties.getProperty("root");
        System.out.println("用户名："+user);
        System.out.println("用户密码："+user);
    }

    @Test
    public void writers() throws IOException {
        // 使用 Properties 类来修改以及创建 配置文件
        // 1.创建Properties对象
        Properties properties = new Properties();
        // 2.添加/修改值
        // key 存在即是修改，不存在即是添加
        properties.setProperty("name","root");
        // 中文存储的是unicode 码
        properties.setProperty("address","广东建设网");
        properties.setProperty("ip","10.0.0.196");
        // 把配置保存到指定文件中
        // store(Writer,Comment) 传入一个 字符输出流 和注释内容
        properties.store(new FileWriter("mysql2.properties"),"config");
        System.out.println("配置文件生成成功~");
    }
}
